﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FONCREAGROINTEGRAL.Models;

namespace FONCREAGROINTEGRAL.Controllers
{
    public class proyectoController : Controller
    {
        public SistIntFoncreagroEntities entidades = new SistIntFoncreagroEntities();
        //
        // GET: /proyecto/
        public ActionResult IndexById(int id)
        {
            var query = entidades.PROYECTOes.Where(p => p.IdProyecto == id);

            var result = (from p in query.ToList()
                          select new
                          {
                              IdProyecto = p.IdProyecto,
                              Codigo = p.Codigo,
                              Proyecto = p.Nombre,
                          }).ToList();

            return Json(new { grid = result, total = query.Count() }, JsonRequestBehavior.AllowGet);
        }

        public ActionResult Index()
        {
            int start = Convert.ToInt32(Request.QueryString["start"]);
            int limit = Convert.ToInt32(Request.QueryString["limit"]);

            string area = Convert.ToString(Request.QueryString["query"]);

            var query = entidades.PROYECTOes.Where(p => p.Estado == "EJECUCION");

            if (!String.IsNullOrEmpty(area))
            {
                query = query.Where(a => (a.Nombre).ToUpper().Contains(area.ToUpper()) || 
                    (a.Codigo).ToUpper().Contains(area.ToUpper()));
            }

            var result = (from p in query.OrderBy(p => p.Codigo).Skip(start).Take(limit).ToList()
                          select new
                          {
                              IdProyecto = p.IdProyecto,
                              Codigo = p.Codigo,
                              Proyecto = p.Nombre,
                          }).ToList();

            return Json(new { grid = result, total = query.Count() }, JsonRequestBehavior.AllowGet);
        }

        public ActionResult IndexCpd()
        {
            int start = Convert.ToInt32(Request.QueryString["start"]);
            int limit = Convert.ToInt32(Request.QueryString["limit"]);

            string cpd = Convert.ToString(Request.QueryString["query"]);

            var query = entidades.PROYECTOes.Where(p => p.Estado == "EJECUCION" && p.TipoGeneral == 1);

            if (!String.IsNullOrEmpty(cpd))
            {
                query = query.Where(a => (a.Nombre).ToUpper().Contains(cpd.ToUpper()) ||
                    (a.Codigo).ToUpper().Contains(cpd.ToUpper()));
            }

            var result = (from p in query.OrderBy(p => p.Codigo).Skip(start).Take(limit).ToList()
                          select new
                          {
                              IdProyectoCPD = p.IdProyecto,
                              Codigo = p.Codigo,
                              ProyectoCPD = p.Nombre,
                          }).ToList();

            return Json(new { grid = result, total = query.Count() }, JsonRequestBehavior.AllowGet);
        }

        public ActionResult IndexCpdU()
        {
            int start = Convert.ToInt32(Request.QueryString["start"]);
            int limit = Convert.ToInt32(Request.QueryString["limit"]);

            string cpd = Convert.ToString(Request.QueryString["query"]);

            var query = entidades.PROYECTOes.Where(p => p.Estado == "EJECUCION" && p.TipoGeneral == 1);

            if (!String.IsNullOrEmpty(cpd))
            {
                query = query.Where(a => (a.Nombre).ToUpper().Contains(cpd.ToUpper()) ||
                    (a.Codigo).ToUpper().Contains(cpd.ToUpper()));
            }

            var result = (from p in query.OrderBy(p => p.Codigo).Skip(start).Take(limit).ToList()
                          select new
                          {
                              IdProyectoCPDU = p.IdProyecto,
                              Codigo = p.Codigo,
                              ProyectoCPDU = p.Nombre,
                          }).ToList();

            return Json(new { grid = result, total = query.Count() }, JsonRequestBehavior.AllowGet);
        }
        //
        // GET: /proyecto/curvaS/5

        public ActionResult CurvaS(int id)
        {
            
            DateTime ini = Convert.ToDateTime("2012/01/01");
            DateTime fin = Convert.ToDateTime("2012/12/31");
            var query = entidades.CurvaSNivelProy(id, "SOLES", ini, fin).ToList();

            return Json(new { grid = query, total = query.Count() }, JsonRequestBehavior.AllowGet);
        }

        public ActionResult Componentes(int id)
        {
            //DateTime ini = Convert.ToDateTime("2012/01/01");
            //DateTime fin = Convert.ToDateTime("2012/12/31");
            var query = entidades.CurvaSCompProy(id).ToList();

            return Json(new { grid = query, total = query.Count() }, JsonRequestBehavior.AllowGet);
        }
        //id ->IdProyecto id id1 -> IdComponente
        public ActionResult CurvaSComp(int id, int id1)
        {

            DateTime ini = Convert.ToDateTime("2012/01/01");
            DateTime fin = Convert.ToDateTime("2012/12/31");
            var query = entidades.CurvaSNivelComponente(id,id1, "SOLES", ini, fin).ToList();

            return Json(new { grid = query, total = query.Count() }, JsonRequestBehavior.AllowGet);
        }
        //
        // GET: /proyecto/Details/5

        public ActionResult Details(int id)
        {
            return View();
        }

        //
        // GET: /proyecto/Create

        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /proyecto/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        
        //
        // GET: /proyecto/Edit/5
 
        public ActionResult Edit(int id)
        {
            return View();
        }

        //
        // POST: /proyecto/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /proyecto/Delete/5
 
        public ActionResult Delete(int id)
        {
            return View();
        }

        //
        // POST: /proyecto/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        public ActionResult TreeMenu()
        {
            string response = null;
            response = "[{id:'1',text:'Curva S',leaf:true, hrefTarget:'estadoinventario/Index'}]";
                //"{ text: 'Inventario Biologico', id : '4',expanded: false,leaf:true, hrefTarget:'inventariob/Index' }]";
            return Content(response);
        }
    }
}
